package de.hauschild.gmltracer.tracer;

import org.apache.commons.math.geometry.Vector3D;

/**
 * The representation of a intersection.
 * 
 * @author Klaus Hauschild
 * @since 1.0.0
 */
public class Intersection {

  private final Vector3D point;
  private final Shape shape;
  private final Vector3D normal;

  /**
   * The Constructor.
   * 
   * @param thePoint
   *          the point
   * @param theShape
   *          the shape
   * @param theNormal
   *          the normal
   */
  public Intersection(final Vector3D thePoint, final Shape theShape, final Vector3D theNormal) {
    point = thePoint;
    shape = theShape;
    normal = theNormal;
  }

  /**
   * Gets the normal.
   * 
   * @return the normal
   */
  public Vector3D getNormal() {
    return normal;
  }

  /**
   * Gets the point.
   * 
   * @return the point
   */
  public Vector3D getPoint() {
    return point;
  }

  /**
   * Gets the shape.
   * 
   * @return the shape
   */
  public Shape getShape() {
    return shape;
  }
}
